﻿using System;
using System.Data;
using System.Windows.Forms;
using HMS.Report;
using System.Data.SqlClient;

namespace HMS
{
    public partial class ucThongkesoluong : UserControl
    {
        private SqlConnection con = new SqlConnection(FRM_Manhinhchinh.sConn);
        private SqlDataAdapter dataAp;
        private DataTable dataTable;
        public ucThongkesoluong()
        {
            InitializeComponent();
        }

        public DataTable GetDataTable(string sql)
        {
            // Tạo dataApdapter, thực hiện câu lệnh query
            dataAp = new SqlDataAdapter(sql, con);
            // Đổ dữ liệu vào DataTable
            dataTable = new DataTable();
            dataAp.Fill(dataTable);
            return dataTable;
        }// end GetDataTable

        #region Hàm xử lý lọc
        // Lọc dữ liệu theo Tuần
        public void Query_DiaDiemThoiGian(string sInput, string sValue)
        {
            DateTime dtGet = dateTimeAll.Value;
            grdData.DataSource = null;
            string sSQL = "select convert(varchar(10), paper_createdate, 103) AS paper_createdate, d.department_name,"
                    + " count(*) as patient_id from tblme_paper m, tbldepartment d where m.department_id = d.department_id and"
                    + " paper_createDate between "
                    + Datetime.FirstDay(dtGet, sInput, sValue) + " and " + Datetime.LastDay(dtGet, sInput, sValue)
                    + " group by convert(varchar(10), paper_createdate, 103), d.department_name"
                    + " order by convert(varchar(10), paper_createdate, 103)";
            GetDataTable(sSQL);
            grdData.DataSource = dataTable;

            // Kiểm tra dữ liệu rỗng
            checkData(dataTable);
        }// end Query_DiaDiemThoiGian_Tuan
        #endregion

        #region Xử lý các nút lọc
        // Event click cho nút Tuấn
        private void btnTuan_Click(object sender, EventArgs e)
        {
            btnTuan.LookAndFeel.SetSkinStyle("Valentine");
            btnThang.LookAndFeel.SetSkinStyle("Office 2010 Blue");
            Query_DiaDiemThoiGian("wk", "-1");
        }// end btnTuan_Click

        // Event click cho nút Tháng
        private void btnThang_Click(object sender, EventArgs e)
        {
            btnThang.LookAndFeel.SetSkinStyle("Valentine");
            btnTuan.LookAndFeel.SetSkinStyle("Office 2010 Blue");
            Query_DiaDiemThoiGian("mm", "-1");
        }// end btnThang_Click
        #endregion

        #region Xử lý các nút tác vụ
        // Event click cho nút Xem trước
        private void btnXemtruoc_Click(object sender, EventArgs e)
        {
            rptThongkesoluong rpt = new rptThongkesoluong();
            rpt.lblNguoilap.Text = String.Format("{0} - {1}", FRM_Dangnhap.userid, FRM_Dangnhap.name);
            rpt.DataSource = dataTable;
            rpt.DataMember = "dataTable";
            rpt.ShowRibbonPreviewDialog();
        }// end btnXemtruoc_Click

        // Event click cho nút In
        private void btnIn_Click(object sender, EventArgs e)
        {
            rptThongkesoluong rpt = new rptThongkesoluong();
            rpt.lblNguoilap.Text = String.Format("{0} - {1}", FRM_Dangnhap.userid, FRM_Dangnhap.name);
            rpt.DataSource = dataTable;
            rpt.DataMember = "dataTable";
            rpt.PrintDialog();
        }// end btnIn_Click
        #endregion

        // Tăng số tự động theo dòng Grid
        private void gridView1_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
        {
            if (e.Column == sothutu) e.DisplayText = (e.RowHandle + 1).ToString();
        }// end gridView1_CustomDrawCell

        private void checkData(DataTable tbl)
        {
            // Không tồn tại dữ liệu
            if (tbl.Rows.Count == 0)
            {
                Set_Button(false);
                MessageBox.Show("Dữ liệu rỗng đối với lựa chọn này !", "Thông báo",MessageBoxButtons.OK,MessageBoxIcon.Warning);
            }// end if

            // Tồn tại dữ liệu
            else
            {
                Set_Button(true);
                return;
            }// end if
        }// end checkData

        // Status của nút Xem trước và in
        private void Set_Button(bool bCheck)
        {
            btnXemtruoc.Enabled = bCheck;
            btnIn.Enabled = bCheck;
        }// end Set_Button

        #region Kiểm tra điều kiện các components
        private void dateTimeAll_CloseUp(object sender, EventArgs e)
        {
            Set_Button(false);
        }// end dateTimeAll_CloseUp
        #endregion
    }// end class
}// end namespace